322238c54ad97db77d95ef3e6b49c619029813ef,applications/product/src/org/ofbiz/shipment/thirdparty/usps/UspsServices.java,UspsServices,uspsAddressValidation,#DispatchContext#Map#,501
Before Change
Element respErrorElement = UtilXml.firstChildElement(respAddressElement, "Error");
if (respErrorElement != null) {
return ServiceUtil.returnFailure("The following error was returned by the USPS Address Validation service: " +
UtilXml.childElementValue(respErrorElement, "Description"));
}
Map<String, Object> result = ServiceUtil.returnSuccess();
After Change
if ((UtilValidate.isEmpty(state) && UtilValidate.isEmpty(city) && UtilValidate.isEmpty(zip5)) || // No state, city or zip5
(UtilValidate.isEmpty(zip5) && (UtilValidate.isEmpty(state) || UtilValidate.isEmpty(city)))) { // Both state and city are required if no zip5
Debug.logError("USPS address validation requires either zip5 or city and state", module);
return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
"FacilityShipmentUspsAddressValidationStateAndCityOrZipRqd", locale));
}
Document requestDocument = createUspsRequestDocument("AddressValidateRequest", true, delegator, shipmentGatewayConfigId, resource);
Element addressElement = UtilXml.addChildElement(requestDocument.getDocumentElement(), "Address", requestDocument);
addressElement.setAttribute("ID", "0");
// 38 chars max
UtilXml.addChildElementValue(addressElement, "FirmName", (String) context.get("firmName"), requestDocument);
// 38 chars max
UtilXml.addChildElementValue(addressElement, "Address1", (String) context.get("address2"), requestDocument);
// 38 chars max
UtilXml.addChildElementValue(addressElement, "Address2", (String) context.get("address1"), requestDocument);
// 15 chars max
UtilXml.addChildElementValue(addressElement, "City", (String) context.get("city"), requestDocument);
UtilXml.addChildElementValue(addressElement, "State", (String) context.get("state"), requestDocument);
UtilXml.addChildElementValue(addressElement, "Zip5", (String) context.get("zip5"), requestDocument);
UtilXml.addChildElementValue(addressElement, "Zip4", (String) context.get("zip4"), requestDocument);
Document responseDocument = null;
try {
responseDocument = sendUspsRequest("Verify", requestDocument, delegator, shipmentGatewayConfigId, resource, locale);
} catch (UspsRequestException e) {
Debug.log(e, module);
return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
"FacilityShipmentUspsAddressValidationSendingError", UtilMisc.toMap("errorString", e.getMessage()), locale));
}
Element respAddressElement = UtilXml.firstChildElement(responseDocument.getDocumentElement(), "Address");
if (respAddressElement == null) {
return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
"FacilityShipmentUspsAddressValidationIncompleteResponse", locale));
}
Element respErrorElement = UtilXml.firstChildElement(respAddressElement, "Error");
if (respErrorElement != null) {
return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
"FacilityShipmentUspsAddressValidationIncompleteResponse",
UtilMisc.toMap("errorString", UtilXml.childElementValue(respErrorElement, "Description")), locale));
}
Map<String, Object> result = ServiceUtil.returnSuccess();